package com.k8sops.backend.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.k8sops.backend.model.entity.DOSProjectGroup;

/**
 * Project Group Service Interface
 */
public interface DOSProjectGroupService extends IService<DOSProjectGroup> {
    
    /**
     * Add a new project group
     * 
     * @param projectGroup project group entity
     * @return true if successful, false otherwise
     */
    boolean addProjectGroup(DOSProjectGroup projectGroup);
    
    /**
     * Update project group information
     * 
     * @param projectGroup project group entity
     * @return true if successful, false otherwise
     */
    boolean updateProjectGroup(DOSProjectGroup projectGroup);
    
    /**
     * Delete a project group by ID
     * 
     * @param id project group ID
     * @return true if successful, false otherwise
     */
    boolean deleteProjectGroupById(Long id);
    
    /**
     * Get project group by ID
     * 
     * @param id project group ID
     * @return project group entity
     */
    DOSProjectGroup getProjectGroupById(Long id);
    
    /**
     * Page query project groups
     * 
     * @param page page number
     * @param size page size
     * @param groupName group name for filtering (optional)
     * @return paged result
     */
    IPage<DOSProjectGroup> pageProjectGroups(Integer page, Integer size, String groupName);
}
